<?php

/*------------------------------------------------
*
*   Explay Engine Content Management System.
*   Copyright © 2008 Golovdinov Alexander.
*
*-------------------------------------------------
*
*   Official site: wwww.alex-home.spb.ru/explay.html
*   Contact e-mail: golovdinov@gmail.com
*
*   GNU General Public License original source:
*   http://www.gnu.org/licenses/gpl-3.0.html
*
------------------------------------------------*/

header("Cache-Control: no-store, no-cache, must-revalidate");  
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Cache-control: no-cache");
header ("Content-Type: text/html; charset=utf-8");
mb_internal_encoding("utf-8"); 

define ('EXPLAY', 1);

$_SERVER['DOCUMENT_ROOT'] = dirname (__FILE__);
if (substr ($_SERVER['DOCUMENT_ROOT'], mb_strlen ($_SERVER['DOCUMENT_ROOT'])-1) == '/') $_SERVER['DOCUMENT_ROOT'] = substr ($_SERVER['DOCUMENT_ROOT'], 0, mb_strlen ($_SERVER['DOCUMENT_ROOT'])-1);

ob_start(); 
ob_implicit_flush(0);

// Начинаем отсчет времени
$start_time = microtime(); 
$start_array = explode(' ',$start_time); 
$start_time = $start_array[1] + $start_array[0];

// Подключаем главные файлы
include $_SERVER['DOCUMENT_ROOT'].'/engine/functions.php';       // Основное API
include $_SERVER['DOCUMENT_ROOT'].'/engine/settings.php';        // Настроки сайта
include $_SERVER['DOCUMENT_ROOT'].'/engine/mysql.class.php';     // БД
include $_SERVER['DOCUMENT_ROOT'].'/engine/user.class.php';      // Объект пользователя
include $_SERVER['DOCUMENT_ROOT'].'/engine/connect.php';         // Подключение к БД и начальная инициализация
include $_SERVER['DOCUMENT_ROOT'].'/engine/templates.class.php'; // Шаблонизатор

include $_SERVER['DOCUMENT_ROOT'].'/engine/core.class.php';      // Сборка и вывод страницы

$theme = $SITE['site_theme'];

// Создаем шаблонизатор
Templater::$path = $_SERVER['DOCUMENT_ROOT']."/themes/$theme/";

if (is_moderator() && !is_admin())
	Templater::$user = 'moderator';
elseif (is_admin())
	Templater::$user = 'admin';
elseif (is_registered())
	Templater::$user = 'register';
else
	Templater::$user = 'user';

// Устанавиваем статичную переменну в шаблоны со значением http сайта
$site_url = $_SERVER['HTTP_HOST'];
Templater::set_static_var ('{_HTTP_HOST_}', 'http://'.$site_url);

// Подключаем плагины
$plugins = $db->query("SELECT p_file FROM ".DB_PEREFIX."_plugins WHERE p_status = 'on'");
while (list($plugin_file) = $db->fetch_row ($plugins)) {
	if (file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$plugin_file)) include $_SERVER['DOCUMENT_ROOT'].'/'.$plugin_file;
}

// "Включаем" ядро
$CORE = CORE::getInstance();
CORE::$SITE = $SITE;
$CORE->global_template_href = 'mainpage.tpl';
$CORE->theme = $theme;


// Определяем подключаемый модуль (файл)
$CORE->controller ();

// Если вызывается обычный модуль, а не AJAX или API, то подключаем стандартные шаблоны
// Это сделано для нормальной работы AJAX в адмнпанели
if (!$CORE->break_page_generation) include $_SERVER['DOCUMENT_ROOT'].'/engine/templates.php';

// Обновляем сессию
$uid = 0;
$ugroup = 'guest';
if (is_registered()) {
	$uid = $GLOBAL_USER['user_id'];
	$ugroup = 'user';
}
$CORE->session ($uid, $ugroup);

// Подключаем файл модуля
if ($CORE->module_plugin_href) include $CORE->module_plugin_href;
if ($CORE->module_href) include $CORE->module_href;

$output = ob_get_contents();
ob_end_clean();

if (CORE::$title == '') CORE::set_page_title ($SITE['site_name']);
CORE::$body = $output;

$CORE->make_page ();

$end_time = microtime(); 
$end_array = explode(" ",$end_time); 
$end_time = $end_array[1] + $end_array[0]; 
$time = $end_time - $start_time; 

$time    = number_format($time, 5);
$sqltime = number_format($db->past_work_time(), 5);

print "\r\n<!-- Page generated in $time sec. -->".
	  "\r\n<!-- MySQL queries: ".$db->past_count_queries()." -->".
	  "\r\n<!-- Time of MySQL queries: $sqltime sec. -->".
	  "\r\n<!-- Used ".Templater::past_count()." templates -->";

mysql_close();
exit; 
